package com.wsfPro.services.test; // package services.test;
//
// import org.aspectj.lang.JoinPoint;
// import org.aspectj.lang.ProceedingJoinPoint;
// import org.aspectj.lang.annotation.After;
// import org.aspectj.lang.annotation.AfterReturning;
// import org.aspectj.lang.annotation.AfterThrowing;
// import org.aspectj.lang.annotation.Around;
// import org.aspectj.lang.annotation.Aspect;
// import org.aspectj.lang.annotation.Before;
// import org.aspectj.lang.annotation.Pointcut;
//
// @Aspect
// public class AspectJAdvice {
//
//    /**
//     * Pointcut
//     * 定义Pointcut，Pointcut名称为aspectjMethod,必须无参，无返回值
//     * 只是一个标识，并不进行调用
//     */
//    @Pointcut("execution(* get*(..))")
//    private void aspectJMethod(){};
//
//    @Before("aspectJMethod()")
//    public void doBefore(JoinPoint joinPoint){
//        System.out.println("----dobefore()开始----");
//        System.out.println("执行业务逻辑前做一些工作");
//        System.out.println("通过jointPoint获得所需内容");
//        System.out.println("----dobefore()结束----");
//    }
//    @Around("aspectJMethod()")
//    public Object doAround(ProceedingJoinPoint pjp) throws Throwable{
//
//        System.out.println("----doAround()开始----");
//        System.out.println("此处可做一些类似before的工作");
//        //核心逻辑
//        //retval 被切方法的返回值
//        Object retval=pjp.proceed();
//        System.out.println("此处可做一些类似after的工作");
//        System.out.println("----doAround()结束----");
//
//        return retval;
//    }
//    @After(value="aspectJMethod()")
//    public void doAfter(JoinPoint joinPoint){
//        System.out.println("----doAfter()开始----");
//        System.out.println("执行核心逻辑之后，所做工作");
//        System.out.println("通过jointPoint获得所需内容");
//        System.out.println("----doAfter()结束----");
//    }
//
//    @AfterReturning(value="aspectJMethod()",returning="retval")
//    public void doReturn(JoinPoint joinPoint, String retval){
//        System.out.println("AfterReturning()开始");
//        System.out.println("Return value= "+retval);
//        System.out.println("此处可对返回结果做一些处理");
//        System.out.println("----AfterReturning()结束----");
//
//    }
//
//    @AfterThrowing(value="aspectJMethod()", throwing="e")
//    public void doThrowing(JoinPoint joinPoint,Exception e){
//        System.out.println("-----doThrowing()开始-----");
//        System.out.println(" 错误信息："+e.getMessage());
//        System.out.println(" 此处意在执行核心业务逻辑出错时，捕获异常，并可做一些日志记录操作等等");
//        System.out.println(" 可通过joinPoint来获取所需要的内容");
//        System.out.println("-----End of doThrowing()------");
//    }
//
//
// }
